/*
 * File:    RenderHoolInterface.java
 * Created: 14-Oct-2007
 * Version: $Id$
 *
 * COPYRIGHT (C) 2007, Bitgate Software, LLC.  All Rights Reserved.
 *
 * software@bitgatesoftware.com
 */

package com.bitgate.util.service.protocol.http.render;

import com.bitgate.util.service.protocol.http.HttpClientContext;

/**
 * This interface provides a way to render a page request made by a client.  It is a generic interface so that other
 * types of rendering mechanisms can be inserted into the system silently.
 * 
 * @author kenji
 * @since 0.6.0
 */
public interface RenderHookInterface
{
	/**
	 * Provides a way to render a specified page with the given HTTP Client Context.
	 * 
	 * @param file The <code>String</code> containing the filename to render.
	 * @param hcContext The <code>HttpClientContext</code> to apply toward its output.
	 * @return <code>ResultHookResult</code> containing the output.
	 * @throws RenderHookException on any errors.
	 */
	RenderHookResult renderPage(String file, HttpClientContext hcContext) throws RenderHookException;
}